JavaScript可以在一個自己設定的時間區間(間隔時間)執行程式,可以為「一次性」的執行或是「重複性」的執行。我們稱之為Time Events(時間事件)。
有以下兩種方法:
window.setTimeout(function, milliseconds)
:一次性執行(window.
可省略)()
中的function
表示要執行的函式()
中的milliseconds
需放入間隔的時間,單位為毫秒(千分之一秒),所以如果是寫1000,則表示1秒後會執行function函式的程式碼。
<範例>按下按鈕,過了2秒
後,會執行alertAfter2這個函式:
<h1>setTimeout的測試,點下面按鈕開始執行</h1>
<input class='.try' type="button" value="按我">
<script>
var tryme = document.querySelector('.try');
function alertAfter2() {
alert('Oh yeah ~ I am Coming');
};
tryme.onclick = setTimeout(alertAfter2, 2000);
</script>
執行結果:
使用window.clearTimeout()
來中止setTimeout()的執行,window
可省略,
語法:window.clearTimeout(setTimeout的變數名稱)
()
中的參數需是一個「變數名稱」,所以要使用clearTimeout必須先將setTimeout()
指定給一個變數。
window.setInterval(function, milliseconds)
:重複性執行 (window.
可省略)()
中的function
表示要執行的函式()
中的milliseconds
需放入間隔的時間,單位為毫秒(千分之一秒),所以如果是寫5000,則表示每隔5秒都會重複的執行function函式的程式碼。
<範例>下面時間三秒後會出現,並且每三秒會改變:
<h1>使用setInterval,下面時間三秒後會出現,並且每三秒會改變</h1>
<h2 id='showtime'></h2>
<script>
var show = document.querySelector('#showtime');
var myTimer = setInterval(changeEvery5, 3000);
function changeEvery5() {
var today = new Date();
show.innerHTML = today.toLocaleTimeString();
//today.toLocaleTimeString() 用來取得指定日期物件中的當地時間,並以字串方式顯示。
}
</script>
執行結果:
三秒過後的顯示結果:
使用window.clearInterval()
來中止setInterval()的執行,window
可省略,
語法:window.clearInterval(clearInterval的變數名稱)
()
中的參數需是一個「變數名稱」,所以要使用clearInterval一樣必須先將setInterval()
指定給一個變數。
資料參考來源:w3school.com